package com.kehutong.common.enums;

import org.coraframework.util.HashID;

// 此处新增完成还需要再#MessageConfigEnum同步更新
public enum TemplateType implements HashID {

    // 缴费
    PAY_SUCCESS("PAY_SUCCESS", "缴费成功", true),
    PAY_CALL("PAY_CALL", "催缴通知", true),
    BATCH_PAY_CALL("BATCH_PAY_CALL", "批量催缴通知", true),

    // 缴费V2版本
    PAY_B_TASK_REMIND("PAY_B_TASK_REMIND", "催费任务消息提醒", true),
    PAY_B_TASK_SUCCESS_REMIND("PAY_B_TASK_SUCCESS_REMIND", "催费任务关联房屋缴费完成提醒（非催费任务不需提醒）", true),
    PAY_C_BILL_SUCCESS("PAY_C_BILL_SUCCESS", "缴费完成", true),
    PAY_C_TASK_REMIND("PAY_C_TASK_REMIND", "物业对用户未缴账单催费", true),
    PAY_C_MONTH_BILL_DATE("PAY_C_MONTH_BILL_DATE", "月度账单账单日", true),

    // 工单 external 外部；internal 内部；sponsor 发起人；Handler 处理人
    // WORK_ORDER_EXTERNAL_SPONSOR_CREATE("WORK_ORDER_EXTERNAL_SPONSOR_CREATE", "发起人外部工单创建", true),
    // WORK_ORDER_EXTERNAL_HANDLER_CREATE("WORK_ORDER_EXTERNAL_HANDLER_CREATE", "处理人外部工单创建", false),
    // WORK_ORDER_EXTERNAL_SPONSOR_REPLY("WORK_ORDER_EXTERNAL_SPONSOR_REPLY", "发起人外部工单评论回复", true),
    // WORK_ORDER_EXTERNAL_HANDLER_REPLY("WORK_ORDER_EXTERNAL_HANDLER_REPLY", "处理人外部工单评论回复", true),
    // WORK_ORDER_EXTERNAL_HANDLER_HANDLE("WORK_ORDER_EXTERNAL_HANDLER_HANDLE", "处理人外部工单接收工单(包括转交工单）", false),
    // WORK_ORDER_EXTERNAL_HANDLER_URGE("WORK_ORDER_EXTERNAL_HANDLER_URGE", "处理人外部工单催办提醒", false),
    // WORK_ORDER_SPONSOR_EXTERNAL_SUCCESS("WORK_ORDER_SPONSOR_EXTERNAL_SUCCESS", "发起人外部工单处理完成", false),
    // /**
    //  * 根据工单状态决定是否完成
    //  */
    // WORK_ORDER_INTERNAL_SPONSOR_REPLY("WORK_ORDER_INTERNAL_SPONSOR_REPLY", "发起人内部工单评论", true),
    // WORK_ORDER_INTERNAL_HANDLER_HANDLE("WORK_ORDER_INTERNAL_HANDLER_HANDLE", "处理人内部工单接收工单(包括转交工单）", false),
    // WORK_ORDER_INTERNAL_HANDLER_URGE("WORK_ORDER_INTERNAL_HANDLER_URGE", "处理人内部工单催办提醒", false),
    // WORK_ORDER_INTERNAL_HANDLER_REPLY("WORK_ORDER_INTERNAL_HANDLER_REPLY", "处理人内部工单评论", true),
    WO_B_CREATE_SEND("WO_B_CREATE_SEND", "处理人接收工单(包括转交的内部/外部工单）", false),
    WO_B_URGE("WO_B_URGE", "处理人的内部/外部工单被催办", false),
    WO_B_DELAY_REMINDER("WO_B_DELAY_REMINDER", "处理人的内部/外部工单延时提醒", false),
    WO_B_REPLY("WO_B_REPLY", "处理人的外部工单被发起人评价", false),
    WO_C_SUCCESS("WO_C_SUCCESS", "发起人的工单处理完成", true),
    WO_C_REPLY("WO_C_REPLY", "发起人的工单评论有回复", true),

    // 住户 wxwork 管家端；mini 小程序
    // RESIDENT_WXWORK_ADD_REMIND("RESIDENT_WXWORK_ADD_REMIND", "管理楼栋、单元、新增住户提醒", true),
    // RESIDENT_WXWORK_AUDIT_REMIND("RESIDENT_WXWORK_AUDIT_REMIND", "管家端住户审核提醒", false),
    // RESIDENT_MINI_AUDIT_REMIND("RESIDENT_MINI_AUDIT_REMIND", "住户端住户审核提醒", false),
    // // RESIDENT_BIND_SUCCESS("RESIDENT_BIND_SUCCESS", "绑定房屋申请提交成功提示", true),
    // RESIDENT_MINI_APPLY_FEEDBACK("RESIDENT_MINI_APPLY_FEEDBACK", "住户申请结果反馈提示", true),
    RESIDENT_B_ADD("RESIDENT_B_ADD", "管理的楼栋/单元/房屋新增住户时提醒管家", true),
    RESIDENT_B_AUDIT("RESIDENT_B_AUDIT", "管家管理的楼栋/单元/房屋有用户提交住户审核时提醒管家", false),
    RESIDENT_C_AUDIT_SUCCESS("RESIDENT_C_AUDIT_SUCCESS", "用户提交的住户申请审核通过反馈通知", false),
    RESIDENT_C_AUDIT_FAIL("RESIDENT_C_AUDIT_FAIL", "用户提交的住户申请审核不通过反馈通知", false),

    // 系统公告
    SYS_MESSAGE("SYS_MESSAGE", "系统公告", true),

    ;
    private final String id;
    private final String desc;
    private final boolean completed;

    private TemplateType(String id, String desc, boolean completed) {
        this.id = id;
        this.desc = desc;
        this.completed = completed;
    }


    @Override
    public String getId() {
        return id;
    }

    @Override
    public String getDesc() {
        return desc;
    }

    public boolean isCompleted(){
        return completed;
    }
}
